package com.example.spindrift.Controllers;

import com.example.spindrift.models.SysNotif;
import com.example.spindrift.service.NotifService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/Notif")
public class NotifController {
    @Autowired
    NotifService notifService;

    /**
     * 获取所有通知信息
     * @return
     */
    @GetMapping("/getAllNotif")
    public List<SysNotif> getAllNotif(){
        return notifService.getAllNotif();
    }

    /**
     * 根据通知类型获取通知信息
     * @param type 通知类型
     * @return
     */
    @GetMapping("/getNotifByType")
    public List<SysNotif> getNotifByType(@RequestParam String type){
        return notifService.getNoteByType(type);
    }

    /**
     * 根据通知标题，模糊搜索通知信息
     * @param keyword 标题关键字
     * @return
     */
    @GetMapping("/searchNotif")
    public List<SysNotif> searchNotif(@RequestParam String keyword){
        return notifService.searchNotif(keyword);
    }

    /**
     * 获取指定用户已读通知消息
     * @param userId 用户ID
     * @return
     */
    @GetMapping("/getNotifByRead")
    public List<SysNotif> getNotifByRead(@RequestParam Integer userId){
        return notifService.getNotifByRead(userId);
    }

    /**
     * 获取指定用户未读通知消息
     * @param userId 用户ID
     * @return
     */
    @GetMapping("/getNotifByUnread")
    public List<SysNotif> getNotifByUnread(@RequestParam Integer userId){
        return notifService.getNotifByUnread(userId);
    }

    /**
     * 添加一条通知信息
     * @param notif 通知信息
     * @return
     */
    @PostMapping("/insertNotif")
    public Boolean insertNotif(@RequestBody SysNotif notif){
        return notifService.insertNotif(notif) > 0;
    }

    /**
     * 根据通知ID删除一条通知信息
     * @param notifId 通知ID
     * @return
     */
    @DeleteMapping("/deleteNotif")
    public Boolean deleteNotif(@RequestParam Integer notifId){
        return notifService.deleteNotif(notifId) > 0;
    }


}
